1. Podstawowe paczki
apt-get install aptitude aptitude update aptitude install vim nmap mc screen unzip sudo aptitude install apache2 mariadb-server php php-mbstring php-gd php-curl php-zip php-xml php-imagick php-cgi php-mysql php-pear php-gettext libapache2-mod-php php-common php-phpseclib mysql_secure_installation aptitude install proftpd proftpd-mod-mysql
2. Baza danych i użytkownik
mysql -u root -p
CREATE DATABASE ftpdb; CREATE USER 'ftpuser'@'localhost' IDENTIFIED BY 'ftppass'; GRANT ALL ON ftpdb.* TO 'ftpuser'@'localhost'; FLUSH PRIVILEGES; \q
3. Lokalna grupa i użytkownik dla użytkowników wirtualnych
groupadd -g 2001 ftpgroup useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser
4. Lokalny folder FTP
mkdir -p /home/ftp/ chown ftpuser:ftpgroup /home/ftp/
5. Struktura bazy danych
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '2001',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) ENGINE=MyISAM;
INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(32) NOT NULL default '',
uid smallint(6) NOT NULL default '2001',
gid smallint(6) NOT NULL default '2001',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) ENGINE=MyISAM;
INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES ('', 'username', ENCRYPT('password'), 2001, 2001, '/var/www/ftp/username/', '/sbin/nologin', 0, '', '');
6. Konfiguracja Proftpd/p>
vim /etc/proftpd/proftpd.conf
DefaultRoot ~ CreateHome on #dodać Include /etc/proftpd/sql.conf RequireValidShell off
7. Uruchomienie modułów
vim /etc/proftpd/modules.conf
LoadModule mod_sql.c LoadModule mod_sql_mysql.c
8. Konfiguracja MySQL
vim /etc/proftpd/sql.conf
SQLBackend mysql SQLAuthTypes Crypt SQLConnectInfo ftpuser@localhost ftpdb ftppass SQLUserInfo ftpuser userid passwd uid gid homedir shell SQLGroupInfo ftpgroup groupname gid members # Aktualizacja licznika po każdym logowaniu SQLLog PASS updatecount SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser # Aktualizacja daty po każdej zmianie SQLLog STOR,DELE modified SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
9. Restart usług Proftpd
service proftpd restart
Philippe 10 kwietnia 2021 11:56
Attention: in /etc/proftpd/sql.conf , correct with this line to make it work:SQLConnectInfo ftpdb @localhost ftpuser ftppass